﻿using CefSharp;
using CefSharp.WinForms;
using System;
using System.Windows.Forms;

namespace SecondApp
{
    public partial class FrmSecond : Form
    {
        public ChromiumWebBrowser chromeBrowser;
        public FrmSecond()
        {
            InitializeComponent();
        }
        private void FrmSecond_Load(object sender, EventArgs e)
        {
            // 创建浏览器控件
            chromeBrowser = new ChromiumWebBrowser("https://blog.csdn.net/xingkongtianyuzhao");
            // 将控件添加到窗体
            this.Controls.Add(chromeBrowser);
            chromeBrowser.Dock = DockStyle.Fill;
        }
        //初始化浏览器并启动
        public void InitializeChromium()
        {
            try
            {
                CefSettings settings = new CefSettings();
                // 设置是否使用GPU
                settings.CefCommandLineArgs.Add("disable-gpu", "1");
                // 设置是否使用代理服务
                settings.CefCommandLineArgs.Add("no-proxy-server", "1");
                // 设置是否启动js交互，假如需要原生与js方法互调，则需要设置为true
                CefSharpSettings.LegacyJavascriptBindingEnabled = true;
                // 初始化cef
                Cef.Initialize(settings, true, browserProcessHandler: null);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        //窗口关闭
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            chromeBrowser.CloseDevTools();//关闭浏览器调试工具
            //此方法会同时关闭窗口，我们真只可以直接调用该方法，同时关闭浏览器及窗口
            chromeBrowser.GetBrowser().CloseBrowser(true);//关闭浏览器
            //释放浏览器对象
            if (chromeBrowser != null && !chromeBrowser.Disposing)
            {
                chromeBrowser.Dispose();
            }
        }


    }
}
